// MANUALLY DUMPED [ShaderRegex\ShaderFixes\ACU_Losti.ini\AC3R_ShadowLight2_Losti]
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//   using 3Dmigoto v1.3.16 on Sun Apr 07 09:05:20 2019
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
//   float4 g_AmbientCube[6];           // Index:    0-5              Components:    24 [unused]
//   float4 g_LayeredSkyUserColor;      // Index:    6.xyzw           Components:     4 [unused]
//   float4 g_LayeredSkyUserColor1;     // Index:    7.xyzw           Components:     4 [unused]
//   float4 g_LayeredSkyUserColor2;     // Index:    8.xyzw           Components:     4 [unused]
//   float4 g_LayeredSkyUserColor3;     // Index:    9.xyzw           Components:     4 [unused]
//   float4 g_LayeredSkyUserColor4;     // Index:   10.xyzw           Components:     4 [unused]
//   float4 g_CurrentTime;              // Index:   11.xyzw           Components:     4 [unused]
//   float4 g_SunColor;                 // Index:   12.xyzw           Components:     4 [unused]
//   float4 g_SunDirection;             // Index:   13.xyzw           Components:     4 [unused]
//   float4 g_WorldLoadingRange;        // Index:   14.xyzw           Components:     4 [unused]
//   float4 g_GlobalWindPS;             // Index:   15.xyzw           Components:     4 [unused]
//   float4 g_VPOSReverseParams;        // Index:   16.xyzw           Components:     4 [unused]
//   float4 g_RenderingReflections;     // Index:   17.xyzw           Components:     4 [unused]
//   float4 g_ViewportScaleOffset;      // Index:   18.xyzw           Components:     4
//   float4 g_VPosToUV;                 // Index:   19.xyzw           Components:     4 [unused]
//   float4 g_ReverseProjectionParams;  // Index:   20.xyzw           Components:     4
//   float2 g_ReverseProjectionParams2; // Index:   21.xy             Components:     2
//   float4x4 g_ViewToWorld;            // Index:   22 23 24 25       Components:    16
//   float4x4 g_WorldToView;            // Index:   26 27 28 29       Components:    16 [unused]
//   float4 g_WorldEntityPosition;      // Index:   30.xyzw           Components:     4 [unused]
//   float4 g_EntityRandomSeed;         // Index:   31.xyzw           Components:     4 [unused]
//   float4 g_BoundingVolumeSize;       // Index:   32.xyzw           Components:     4 [unused]
//   float4 g_EntityToCameraDistance;   // Index:   33.xyzw           Components:     4 [unused]
//   float4 g_LODBlendFactor;           // Index:   34.xyzw           Components:     4 [unused]
//   float4 g_WeatherInfo;              // Index:   35.xyzw           Components:     4 [unused]
//   float4 g_FogParams2;               // Index:   36.xyzw           Components:     4 [unused]
//   float4 g_FogParams1;               // Index:   37.xyzw           Components:     4 [unused]
//   float4 g_MainPlayerPosition;       // Index:   38.xyzw           Components:     4 [unused]
//   float4 g_EyeDirection;             // Index:   39.xyzw           Components:     4 [unused]
//   float4 g_EyePosition;              // Index:   40.xyzw           Components:     4
//   float4 g_DisolveFactor;            // Index:   41.xyzw           Components:     4 [unused]
//   float4 g_LightShaftColor;          // Index:   42.xyzw           Components:     4 [unused]
//   float4 g_LightShaftFade;           // Index:   43.xyzw           Components:     4 [unused]
//   float4 g_LightShaftFade2;          // Index:   44.xyzw           Components:     4 [unused]
//   float4 g_EagleVisionColor;         // Index:   45.xyzw           Components:     4 [unused]
//   float4x4 g_World;                  // Index:   49 50 51 52       Components:    16 [unused]
//   float4 g_SnowParams;               // Index:   53.xyzw           Components:     4 [unused]
//   float3 g_FogReferenceTranslation;  // Index:   59.xyz            Components:     3 [unused]
//   float4 g_FogColor;                 // Index:   60.xyzw           Components:     4 [unused]
//   float4 g_FogAlbedoExtinction;      // Index:   61.xyzw           Components:     4 [unused]
//   float g_AlphaTestValue;            // Index:   62.x              Components:     1 [unused]
//   float4 g_NormalScale;              // Index:   63.xyzw           Components:     4 [unused]
//
//   struct OmniLight
//   {
//
//       float4 m_PositionFar;          // Index:   64
//       float4 m_ColorFade;            // Index:   65
//
//   } g_OmniLights[4];                 // Index:   64-71             Components:    32 [unused]
//
//   struct DirectLight
//   {
//
//       float3 m_Direction;            // Index:   72
//       float4 m_Color;                // Index:   73
//
//   } g_DirectLights[2];               // Index:   72 73 74 75       Components:    16 [unused]
//
//   struct SpotLight
//   {
//
//       float4 m_PositionFar;          // Index:   76
//       float4 m_ColorFade;            // Index:   77
//       float4 m_Direction;            // Index:   78
//       float4 m_ConeAngles;           // Index:   79
//
//   } g_SpotLights[2];                 // Index:   76-83             Components:    32 [unused]
//
//   struct SunLight
//   {
//
//       float3 m_Direction;            // Index:   84
//       float4 m_Color;                // Index:   85
//       float3 m_SpecularDirection;    // Index:   86
//
//   } g_ShadowedDirect;                // Index:   84-86.z           Components:    11 [unused]
//   float4 g_ProjWorldToLight[8];      // Index:   87-94             Components:    32 [unused]
//   float4 g_LightingIrradianceCoeffsR;// Index:   95.xyzw           Components:     4 [unused]
//   float4 g_LightingIrradianceCoeffsG;// Index:   96.xyzw           Components:     4 [unused]
//   float4 g_LightingIrradianceCoeffsB;// Index:   97.xyzw           Components:     4 [unused]
//   float4 g_ProjShadowParams[2];      // Index:   98 99             Components:     8 [unused]
//   float4 g_EntityUniqueIDCol;        // Index:  120.xyzw           Components:     4 [unused]
//   float4 g_MaterialUniqueIDCol;      // Index:  121.xyzw           Components:     4 [unused]
//   float4 g_ShaderUniqueIDCol;        // Index:  122.xyzw           Components:     4 [unused]
//   float4 g_SelectionOverlayCol;      // Index:  123.xyzw           Components:     4 [unused]
//   float4 g_PickingID;                // Index:  124.xyzw           Components:     4 [unused]
//   float4 g_EntityLODLevelCol;        // Index:  125.xyzw           Components:     4 [unused]
//   float4 g_TexelDensityParams;       // Index:  126.xyzw           Components:     4 [unused]
//   float g_EngineTime;                // Index:  127.x              Components:     1 [unused]
//
//   struct OmniLightConsts
//   {
//
//       float4 m_Position;             // Index:  128
//       float4 m_Color;                // Index:  129
//       float4 m_Attenuation;          // Index:  130
//
//   } g_DeferredOmniLight;             // Index:  128 129 130        Components:    12
//
//   struct DirectLightConsts
//   {
//
//       float4 m_Direction;            // Index:  131
//       float4 m_Color;                // Index:  132
//
//   } g_DeferredDirectLight;           // Index:  131 132            Components:     8 [unused]
//
//   struct SpotLightConsts
//   {
//
//       float4 m_Position;             // Index:  133
//       float4 m_Color;                // Index:  134
//       float4 m_Attenuation;          // Index:  135
//       float4 m_Direction;            // Index:  136
//       float4 m_ConeAngles;           // Index:  137
//       float4 m_PositionAtNearClip;   // Index:  138
//
//   } g_DeferredSpotLight;             // Index:  133-138            Components:    24 [unused]
//   float4 g_DeferredProjWorldToLight[4];// Index:  139 140 141 142    Components:    16 [unused]
//   float4 g_DeferredProjShadowParams; // Index:  143.xyzw           Components:     4 [unused]
//   float4 g_DeferredBackgroundColor;  // Index:  144.xyzw           Components:     4 [unused]
//   float4 g_DepthParams;              // Index:  150.xyzw           Components:     4 [unused]
//
//   struct ProjectorCookieParams
//   {
//
//       float4x4 worldToCookie;        // Index:  160
//
//   } g_DeferredCookie;                // Index:  160 161 162 163    Components:    16 [unused]
//   float4 g_WorldLightmapParameters;  // Index:  155.xyzw           Components:     4 [unused]
//   float4 g_WorldLightmapUVParameters;// Index:  158.xyzw           Components:     4 [unused]
//   float4 g_WorldLightmapColor;       // Index:  157.xyzw           Components:     4 [unused]
//   float4 g_WorldAOParameters;        // Index:  145.xyzw           Components:     4 [unused]
//   float4 g_WorldAORangeParameters;   // Index:  146.xyzw           Components:     4 [unused]
//   float4 g_SnowSparklesParams;       // Index:  147.xyzw           Components:     4 [unused]
//   float4 g_WeatherExposedParams;     // Index:  148.xyzw           Components:     4
//   float4 g_WinterParams;             // Index:  149.xyzw           Components:     4 [unused]
//   float4 g_DebugValue;               // Index:  164.xyzw           Components:     4 [unused]
//      = 0x00000000 0x00000000 0x00000000 0x00000000
//
// }
//
// cbuffer LightingConstscb
// {
//
//   struct LightingConsts
//   {
//
//       float4 m_LocalCubeMapParams[2];// Index:    0
//
//       struct LocalCubeMapParams
//       {
//
//           float4 boxMax;             // Index:    2
//           float4 boxMin;             // Index:    3
//           float4 innerBlendBoxMax;   // Index:    4
//           float4 blendBoxMax;        // Index:    5
//           float4 worldPosition;      // Index:    6
//           float4x4 worldToLocal;     // Index:    7
//           uint cubeMapArrayIndex;    // Index:   11
//           float attenuation;         // Index:   11.y
//
//       } m_LocalCubeMaps[32];         // Index:    2
//       float4 m_GiAreaTextureBiasScale;// Index:  322
//       float4 m_GiAreaVerticalAttenuation;// Index:  323
//       float m_GiBounceStrength;      // Index:  324
//       float m_GlobalCubeMapIntensity;// Index:  324.y
//       float4 m_GlobalLightingScale;  // Index:  325
//       float m_GiVolumesCount;        // Index:  326
//
//       struct GiVolumeParams
//       {
//
//           float4 boxMax;             // Index:  327
//           float4 boxMin;             // Index:  328
//           float4 params;             // Index:  329
//           float4x4 worldToLocal;     // Index:  330
//
//       } m_GiVolumes[4];              // Index:  327
//
//   } g_LightingConsts;                // Index:    0-354            Components:  1420
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// DepthSurface                      sampler      NA          NA    2        1
// g_PointClampSampler_NG            sampler      NA          NA    8        1
// g_Albedo_NG                       texture  float4          2d    0        1
// g_Normals_NG                      texture  float4          2d    1        1
// DepthSurface                      texture  float4          2d    2        1
// g_SpecularParams_NG               texture  float4          2d    3        1
// g_Emissive_NG                     texture  float4          2d    4        1
// $Globals                          cbuffer      NA          NA    0        1
// LightingConstscb                  cbuffer      NA          NA    8        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float
// TEXCOORD                 0   xyzw        1     NONE   float   xy w
// TEXCOORD                 1   xyz         2     NONE   float
// TEXCOORD                 2   xyz         3     NONE   float
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_Target                1   xyzw        1   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[149], immediateIndexed
dcl_constantbuffer cb8[326], immediateIndexed
dcl_sampler s2, mode_default
dcl_sampler s8, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_input_ps linear v1.xyw
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_temps 11
dcl_resource_texture2d (float,float,float,float) t125
div r0.xy, v1.xyxx, v1.wwww
mad r0.zw, r0.xxxy, cb0[18].xxxy, cb0[18].zzzw
add r0.xy, r0.xyxx, cb0[21].xyxx
mul r0.xy, r0.xyxx, cb0[20].xyxx
sample_indexable(texture2d)(float,float,float,float) r1.xyzw, r0.zwzz, t1.xyzw, s8
mul r1.yz, r1.zzyz, l(0.000000, 255.000000, 15.937500, 0.000000)
round_ni r2.x, r1.z
mad r2.x, r1.x, l(4080.000000), r2.x
frc r1.x, r1.z
mad r2.y, r1.x, l(4096.000000), r1.y
mad r1.xy, r2.xyxx, l(0.000488519785, 0.000488519785, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
max r1.xy, r1.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
min r1.xy, r1.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
lt r2.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r1.xyxx
lt r2.zw, r1.xxxy, l(0.000000, 0.000000, 0.000000, 0.000000)
iadd r2.xy, r2.zwzz, -r2.xyxx
itof r2.xy, r2.xyxx
add r2.xy, -|r2.xyxx|, r2.xyxx
add r2.xy, r2.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
add r3.xyz, -|r1.xyxx|, l(1.000000, 1.000000, 1.000000, 0.000000)
mul r2.xy, r2.xyxx, r3.yzyy
add r3.z, -|r1.y|, r3.x
lt r1.z, r3.z, l(0.000000)
movc r3.xy, r1.zzzz, r2.xyxx, r1.xyxx
dp3 r1.x, r3.xyzx, r3.xyzx
rsq r1.x, r1.x
mul r1.xyz, r1.xxxx, r3.xyzx
sample_l_indexable(texture2d)(float,float,float,float) r2.x, r0.zwzz, t2.xyzw, s2, l(0.000000)
add r2.x, r2.x, cb0[20].z
div r2.z, cb0[20].w, r2.x
mul r2.xy, r0.xyxx, r2.zzzz
//Losti ShaderRegex - AC3R Pattern Shadow-Lights 2 - START
ld_indexable(texture2d)(float,float,float,float) r7.xyzw, l(0, 0, 0, 0), t125.xyzw
add r7.w, -r2.z, -r7.y
mul r7.w, r7.w, r7.x
mul r7.w, r7.w, cb0[20].x
add r2.x, r2.x, r7.w
//Losti ShaderRegex - AC3R Pattern Shadow-Lights 2 - END


mov r2.w, l(1.000000)
dp4 r3.x, r2.xyzw, cb0[22].xyzw
dp4 r3.y, r2.xyzw, cb0[23].xyzw
dp4 r3.z, r2.xyzw, cb0[24].xyzw

add r2.xyz, -r3.xyzx, cb0[40].xyzx
add r3.xyz, -r3.xyzx, cb0[128].xyzx
dp3 r0.x, r2.xyzx, r2.xyzx
rsq r0.x, r0.x
mul r2.xyz, r0.xxxx, r2.xyzx
dp3_sat r0.x, r1.xyzx, r2.xyzx
sample_indexable(texture2d)(float,float,float,float) r4.xyzw, r0.zwzz, t0.xyzw, s8
mul r0.y, r1.z, r4.w
mov_sat r4.xyz, r4.xyzx
mul_sat r0.y, r0.y, l(8.000000)
sample_indexable(texture2d)(float,float,float,float) r5.xyzw, r0.zwzz, t3.xyzw, s8
sample_indexable(texture2d)(float,float,float,float) r0.z, r0.zwzz, t4.xywz, s8
lt r0.z, l(0.000100), r0.z
max r6.xy, r5.xxxx, l(0.0441941284, 0.000000, 0.000000, 0.000000)
mul r0.w, r6.x, r6.x
log r2.w, r6.y
mul r0.w, r0.w, r0.w
div r0.w, l(2.000000), r0.w
add r0.w, r0.w, l(-2.000000)
min r0.w, r0.w, l(4096.000000)
max r0.w, r0.w, l(1.000000)
log r0.w, r0.w
mad r0.w, -r0.w, l(0.0833333358), l(1.000000)
mul r0.w, r0.w, cb0[148].z
mul r0.y, r0.w, r0.y
mul r0.w, r0.y, l(0.500000)
mad r0.y, -r0.y, l(0.500000), l(1.000000)
mov_sat r0.w, r0.w
add r0.w, r0.w, l(1.000000)
mul r0.w, r2.w, r0.w
exp r0.w, r0.w
max r0.w, r0.w, l(0.0441941284)
mul r0.w, r0.w, r0.w
mad r2.w, -r0.w, r0.w, l(1.000000)
mul r3.w, r0.w, r0.w
mad r0.w, r0.w, r0.w, l(-1.000000)
mad r4.w, r0.x, r2.w, r3.w
sqrt r4.w, r4.w
add r0.x, r0.x, r4.w
div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x
dp3 r4.w, r3.xyzx, r3.xyzx
rsq r5.x, r4.w
mul r6.xyz, r3.xyzx, r5.xxxx
mad r3.xyz, r3.xyzx, r5.xxxx, r2.xyzx
dp3 r5.x, r1.xyzx, r6.xyzx
mov_sat r6.x, r5.x
mov_sat r5.x, -r5.x
mul r1.w, r1.w, r5.x
mad r2.w, r6.x, r2.w, r3.w
sqrt r2.w, r2.w
add r2.w, r2.w, r6.x
div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w
mul r0.x, r0.x, r2.w
dp3 r2.w, r3.xyzx, r3.xyzx
rsq r2.w, r2.w
mul r3.xyz, r2.wwww, r3.xyzx
dp3_sat r1.x, r1.xyzx, r3.xyzx
dp3_sat r1.y, r2.xyzx, r3.xyzx
add r1.y, -r1.y, l(1.000000)
mad r1.z, -r1.x, r1.x, l(1.000100)
mul r1.x, r1.x, r1.x
mul r2.x, r1.z, r1.z
div r1.z, r1.x, r1.z
mad r0.w, r1.x, r0.w, l(1.000000)
mul r0.w, r0.w, r0.w
div r0.w, r3.w, r0.w
div r1.x, -r1.z, r3.w
mad r1.z, r3.w, l(4.000000), l(1.000000)
mul r1.x, r1.x, l(1.442695)
exp r1.x, r1.x
mul r1.x, r1.x, l(4.000000)
div r1.x, r1.x, r2.x
add r1.x, r1.x, l(1.000000)
div r1.x, r1.x, r1.z
mad r1.x, -r0.w, r0.x, r1.x
mul r0.x, r0.x, r0.w
mad r0.w, r5.w, r1.x, r0.x
lt r1.x, l(0.000000), r5.w
movc r0.x, r1.x, r0.w, r0.x
mul r0.w, r1.y, r1.y
mul r0.w, r0.w, r0.w
mul r0.w, r0.w, r1.y
add r1.xyz, r4.xyzx, l(0.055000, 0.055000, 0.055000, 0.000000)
mul r1.xyz, r1.xyzx, l(0.947867274, 0.947867274, 0.947867274, 0.000000)
log r1.xyz, r1.xyzx
mul r1.xyz, r1.xyzx, l(2.400000, 2.400000, 2.400000, 0.000000)
exp r1.xyz, r1.xyzx
ge r2.xyz, l(0.040450, 0.040450, 0.040450, 0.000000), r4.xyzx
mul r3.xyz, r4.xyzx, l(0.0773993805, 0.0773993805, 0.0773993805, 0.000000)
movc r1.xyz, r2.xyzx, r3.xyzx, r1.xyzx
add r2.xyz, r1.xyzx, l(-0.040000, -0.040000, -0.040000, 0.000000)
mad_sat r1.xyz, r5.yyyy, -r1.xyzx, r1.xyzx
mad r2.xyz, r5.yyyy, r2.xyzx, l(0.040000, 0.040000, 0.040000, 0.000000)
add r3.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mad r2.xyz, r3.xyzx, r0.wwww, r2.xyzx
mul r2.xyz, r5.zzzz, r2.xyzx
mul r2.xyz, r0.xxxx, r2.xyzx
mad_sat r0.x, r4.w, cb0[130].x, cb0[130].y
div_sat r0.w, cb0[130].z, r4.w
mul r2.w, r0.x, r0.x
mad r0.x, -r0.x, l(2.000000), l(3.000000)
mul r0.x, r0.x, r2.w
mul r0.x, r0.x, r0.w
mul r3.xyz, r0.xxxx, cb0[129].xyzx
mul r4.xyz, r3.xyzx, r6.xxxx
mad r3.xyz, r1.wwww, r3.xyzx, r4.xyzx
mul r2.xyz, r2.xyzx, r4.xyzx
mul r2.xyz, r2.xyzx, cb8[325].xxxx
movc r4.xyz, r0.zzzz, l(0,0,0,0), r2.xyzx
and o1.xyz, r0.zzzz, r2.xyzx
log r2.xyz, r1.xyzx
mul r2.xyz, r2.xyzx, l(0.416666657, 0.416666657, 0.416666657, 0.000000)
exp r2.xyz, r2.xyzx
mad r2.xyz, r2.xyzx, l(1.055000, 1.055000, 1.055000, 0.000000), l(-0.055000, -0.055000, -0.055000, 0.000000)
ge r5.xyz, l(0.00313080009, 0.00313080009, 0.00313080009, 0.000000), r1.xyzx
mul r1.xyz, r1.xyzx, l(12.920000, 12.920000, 12.920000, 0.000000)
movc r1.xyz, r5.xyzx, r1.xyzx, r2.xyzx
mul_sat r0.xyw, r0.yyyy, r1.xyxz
ge r1.xyz, l(0.040450, 0.040450, 0.040450, 0.000000), r0.xywx
mul r2.xyz, r0.xywx, l(0.0773993805, 0.0773993805, 0.0773993805, 0.000000)
add r0.xyw, r0.xyxw, l(0.055000, 0.055000, 0.000000, 0.055000)
mul r0.xyw, r0.xyxw, l(0.947867274, 0.947867274, 0.000000, 0.947867274)
log r0.xyw, r0.xyxw
mul r0.xyw, r0.xyxw, l(2.400000, 2.400000, 0.000000, 2.400000)
exp r0.xyw, r0.xyxw
movc r0.xyw, r1.xyxz, r2.xyxz, r0.xyxw
sqrt r1.xyz, r0.xywx
movc r0.xyz, r0.zzzz, r1.xyzx, r0.xywx
mul r0.xyz, r0.xyzx, r3.xyzx
dp3 r0.w, r3.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000)
mul o0.w, r0.w, cb8[325].x
mad o0.xyz, r0.xyzx, cb8[325].xxxx, r4.xyzx
mov o1.w, l(0)
ret
// Approximately 169 instruction slots used
